// 格式化时间
export function formatDate(date, fmt) {
    date = new Date(date)
        // 1.获取年份
        // y+ 1个或者多个y  yyyy:2021
        // y* 0个或者多个y
        // y? 0个或者1个y
    if (/(y+)/.test(fmt)) {
        // RegExp.$1 指的是与正则表达式匹配的第一个子匹配
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
    }

    // 2.获取月日等
    let o = {
        'M+': date.getMonth() + 1,
        'd+': date.getDate(),
        'h+': date.getHours(),
        'm+': date.getMinutes(),
        's+': date.getSeconds()
    }
    for (let k in o) {
        if (new RegExp(`(${k})`).test(fmt)) {
            let str = o[k] + '';
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
        }
    }
    return fmt
}

var minute = 1000 * 60;
var hour = minute * 60;
var day = hour * 24;

// 计算时间差


export function handleDate(dateTimeStamp) {
    var result = '';
    var now = Date.now()
    var diffValue = now - dateTimeStamp;
    if (diffValue < 0) {
        console.log("时间不对劲,服务器创建时间与当前时间不同步");
        return result = "刚刚";
    }
    var dayC = diffValue / day;
    var hourC = diffValue / hour;
    var minC = diffValue / minute;
    if (parseInt(dayC) > 30) {
        result = "" + formatDate(dateTimeStamp, "yyyy-MM-dd");
    } else if (parseInt(dayC) > 1) {
        result = "" + parseInt(dayC) + "天前";
    } else if (parseInt(dayC) == 1) {
        result = "昨天";
    } else if (hourC >= 1) {
        result = "" + parseInt(hourC) + "小时前";
    } else if (minC >= 5) {
        result = "" + parseInt(minC) + "分钟前";
    } else
        result = "刚刚";
    return result;
}



// 不足两位补足两位 04:05:09 
function padLeftZero(str) {
    // str=4 -> 004 截取 1 位 -> 04
    return ('00' + str).substr(str.length)
}

// 处理大于1w的数字
export function handleNum(num) {
    if (num > 10000) {
        num = (num / 10000).toFixed(1)
        return num + '万';
    } else {
        return num;
    }
}

// 处理音乐时长的时间
export function handleMusicTime(time) {
    // 如果超过了100000 基本都是毫秒为单位的了 先转成秒的
    time = parseInt(time)
    if (time > 10000) {
        time = Math.floor(time / 1000);
    } else {
        time = Math.floor(time)
    }
    let m = Math.floor(time / 60);
    let s = Math.floor(time % 60);
    m = m < 10 ? '0' + m : m;
    s = s < 10 ? '0' + s : s;
    return m + ':' + s;
}

// 将播放时长还原为秒数
export function returnSecond(time) {
    time = time.split(":")
    let m = parseInt(time[0]);
    let s = parseInt(time[1]);
    return m * 60 + s;
}